package com.fy56.platform.logistics.service.wx;

import com.fy56.platform.logistics.common.ResultModel;
import com.fy56.platform.logistics.model.Order;
import com.fy56.platform.logistics.model.PayOrder;
import com.fy56.platform.logistics.service.common.IBaseService;

import java.util.List;
import java.util.Map;

/**
 * 支付订单记录接口
 *
 * @author
 * @date
 */
public interface IPayOrderService extends IBaseSlaveService<PayOrder> {

    /**
     * 获取支付订单签名数据信息
     *
     * @param entity
     * @return
     */
    public ResultModel getPayOrderSignCodeService(PayOrder entity);

    /**
     * 根据支付订单编号，关闭支付订单
     *
     * @param entity
     * @return
     */
    public ResultModel updateClosePayOrder(PayOrder entity);

    /**
     * 根基订单条件内容，查询订单列表信息
     *
     * @param entity
     * @return
     */
    public ResultModel updateOrderPayStateService(PayOrder entity);

    /**
     * 根据支付订单编号，删除支付订单
     *
     * @param entity
     * @return
     */
    public ResultModel deletePayOrderService(PayOrder entity);

    /**
     * 根基订单条件内容，查询订单列表信息
     *
     * @param entity
     * @return
     */
    public ResultModel findPayOrderListService(PayOrder entity);


    /**
     * 根据支付订单参数，获取支付订单列表
     *
     * @param payOrderNo
     * @return
     */
    public String getPayOrderNotByParamsService(String payOrderNo);

    /**
     * 根据支付订单号查询支付订单信息
     *
     * @param payOrderNo
     * @return
     */
    public List<PayOrder> findPayOrderByParamsService(String payOrderNo);

    /**
     * 检查更新订单支付状态
     *
     * @param orders
     */
    public void vaildateOrdersPayStateService(List<Order> orders);

    /**
     * 检查更新订单支付状态
     *
     * @param order
     */
    public void validatePayOrderPayState(Order order);

    /**
     * 订单发起退款申请
     *
     * @param entity
     * @return
     */
    public ResultModel returnPayOrderMoneyService(PayOrder entity);

    /**
     * 查询订单支付订单列表
     *
     * @param orderId
     * @return
     */
    public List<PayOrder> getPayOrderListByOrderIdService(String orderId);


}
